import type { RouteRecordRaw } from "vue-router";
/**
 * 路由meta对象参数说明
 * meta: {
 *      title:          菜单栏及 tagsView 栏、菜单搜索名称（国际化）
 *      hidden：        是否隐藏此路由
 *      icon：          菜单、tagsView 图标，阿里：加 `iconfont xxx`，fontawesome：加 `fa xxx`
 * }
 */

/**
 * 静态路由（默认路由）
 * 没有登录能够访问（不需要权限就能访问）路由表
 */
export const staticRoutes: Array<RouteRecordRaw> = [
  {
    path: "/login",
    name: "Login",
    component: () => import("@/views/login/index.vue"),
    meta: {
      hidden: true,
    },
  },

  {
    path: "/404",
    name: "404",
    component: () => import("@/views/error/404.vue"),
    meta: {
      hidden: true,
    },
  },

  {
    path: "/",
    component: () => import("@/layout/index.vue"),
    redirect: "/home",
    children: [
      {
        path: "home",
        name: "Home",
        component: () => import("@/views/home/index.vue"),
        // 1. 决定左侧菜单显示什么内容 2. 决定网站的title
        meta: {
          title: "首页",
          icon: "ele-HomeFilled",
        },
      },
    ],
  },
];

/**
 * 定义动态路由
 * 需要登录并且拥有访问权限才能访问的路由表
 */
// export const allAsyncRoutes: Array<RouteRecordRaw> = [
//   /*
//     如果只有一个子路由，左侧菜单会显示子路由meta.title
//     如果有多个子路由，左侧菜单会显示父路由meta.title
//   */
//   {
//     path: "/product",
//     component: () => import("@/layout/index.vue"),
//     redirect: "/product/trademark/list",
//     name: "Product",
//     meta: {
//       title: "商品管理",
//       // https://element-plus.org/zh-CN/component/icon.html#icon-collection
//       icon: "ele-ShoppingBag",
//     },
//     children: [
//       {
//         // path: "/product/trademark/list", 如果路径以 / 开头，路径就是这个地址
//         path: "trademark/list", // 如果路径不以 / 开头，路径就会拼接上父路由路径
//         name: "Trademark",
//         component: () => import("@/views/product/trademark/index.vue"),
//         meta: {
//           title: "品牌管理", // 1. 决定左侧菜单显示什么内容 2. 决定网站的title
//         },
//       },
//       {
//         path: "category/list",
//         name: "Category",
//         component: () => import("@/views/product/category/index.vue"),
//         meta: {
//           title: "分类管理",
//         },
//       },
//       {
//         path: "attr/list",
//         name: "Attr",
//         component: () => import("@/views/product/attr/index.vue"),
//         meta: {
//           title: "平台属性管理",
//         },
//       },
//       {
//         path: "spu/list",
//         name: "Spu",
//         component: () => import("@/views/product/spu/index.vue"),
//         meta: {
//           title: "SPU管理",
//         },
//       },
//       {
//         path: "sku/list",
//         name: "Sku",
//         component: () => import("@/views/product/sku/index.vue"),
//         meta: {
//           title: "SKU管理",
//         },
//       },
//     ],
//   },

//   {
//     path: "/acl",
//     component: () => import("@/layout/index.vue"),
//     redirect: "/acl/user/list",
//     name: "Acl",
//     meta: {
//       title: "权限管理",
//       icon: "ele-Setting",
//     },
//     children: [
//       {
//         path: "user/list",
//         name: "User",
//         component: () => import("@/views/acl/user/index.vue"),
//         meta: {
//           title: "用户管理",
//         },
//       },
//       {
//         path: "role/list",
//         name: "Role",
//         component: () => import("@/views/acl/role/index.vue"),
//         meta: {
//           title: "角色管理",
//         },
//       },
//       {
//         path: "role/auth",
//         name: "RoleAuth",
//         component: () => import("@/views/acl/role/components/RoleAuth.vue"),
//         meta: {
//           title: "角色管理",
//           hidden: true,
//           activeMenu: "/acl/role/list",
//         },
//       },
//       {
//         path: "permission/list",
//         name: "Permission",
//         component: () => import("@/views/acl/permission/index.vue"),
//         meta: {
//           title: "菜单管理",
//         },
//       },
//     ],
//   },
// ];

/**
 * 任意路由表
 * 动态添加路由，任意路由表要最后添加才能生效
 */
export const anyRoutes = [
  /* 匹配任意的路由 必须最后注册 */
  {
    path: "/:pathMatch(.*)",
    name: "Any",
    redirect: "/404",
    meta: {
      hidden: true,
    },
  },
];
